package com.athena.api.classes;

import java.util.List;

import com.athena.dal.entities.Subject;

public interface ISubjectService {
	
	/**
	 * This method will return all the subject for a student
	 * @param classId
	 * @return
	 */
	public Subject[] getClassCourses(int classId);
	
	/**
	 * This method will return all the subject to be taught
	 * by a teacher to a student(including Electives).
	 * The result will be same if instead of studentId, classId is specified.
	 * @param studentId
	 * @param facultyId
	 * @param classId
	 * @return
	 */
	public Subject[] getTeachingCourses(int facultyId, int classId);
	
	/**
	 * Return the list of Subject that
	 * are taken by a student as elective.
	 * @param Id
	 * @return
	 */
	
	public Subject[] getElectivesbyStudent(int studentId);
	
	/**
	 * 
	 * @param classId
	 * @return
	 */
	public Subject[] getElectivesbyClass(int classId);
	
	/**
	 * 
	 * @param departmentId
	 * @return
	 */
	public List<Subject> getSubjectsForDept(String departmentId);
	
	/**
	 * 
	 * @param departmentId
	 * @param classId
	 * @return
	 */
	public List<Subject> getSubjectsForDeptOfClass(String departmentId, int classId);
	

}
